package io;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/**
 * 字符流
 * java将流按照读写单位划分为字节流与字符流
 * 字节流:超类为InputStream和OutputStream，读写数据单位为字节
 * 字符流:超类为Reader和Writer，读写数据的单位为char
 * 
 * 字符流封装了字节与字符的转换，因此字符流仅适合读写文本数据。
 * 
 * 转换流
 * 转换流是字符流的一对常用实现类，是一对高级流。在实际开发中我们不会直接
 * 操作这个流，但是在流连接中它是非常重要的一环，负责衔接字节流与其他的高级
 * 字符流。
 * @author Xiloer
 *
 */
public class OSWDemo {
	public static void main(String[] args) throws IOException {
		//向文件中写入文字
		FileOutputStream fos = new FileOutputStream("osw.txt");
		/*
		 * 第二个参数用来指定在字符集，这样当字符串通过转换流时会按照该
		 * 字符集转换为对应的一组字节。如果不指定则是按照系统默认的字符集
		 * 转换，不推荐这样的作法。
		 */
		OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
		
		osw.write("来~左边跟我一起画个龙~");
		osw.write("右边画一道彩虹~");
		System.out.println("写出完毕!");
		osw.close();
	}
}






